//
//  HMStatusListViewModel.swift
//  CZWeibo31
//
//  Created by apple on 16/8/13.
//  Copyright © 2016年 itcast. All rights reserved.
//

import UIKit
// 作用: 帮助首页请求数据和提供数据
class HMStatusListViewModel: NSObject {
    // 保存微博数据数组
    lazy var dataArray:[HMStatusViewModel] = [HMStatusViewModel]()
}


extension HMStatusListViewModel{
    // 请求首页数据 isPullUp 是否是上拉加载更多
    func loadData(isPullUp: Bool,finish:(isSuccess: Bool, count: Int)->()){
        
        var sinceId: Int64 = 0
        var maxId:Int64 = 0
        // 上拉加载更过
        if isPullUp {
            maxId = dataArray.last?.statusModel?.id ?? 0
            if maxId > 0 {
                // 则返回ID小于或等于max_id的微博，默认为0。
                maxId -= 1
            }
        }else {
            // 下拉刷新
            sinceId = dataArray.first?.statusModel?.id ?? 0
        }
        
        // 使用DAL 处理数据
        HMStatusDAL.checkOutCache(sinceId, maxId: maxId) { (res) -> () in
            // 判断res 是否为nil
            guard let r = res else{
                finish(isSuccess: false, count: 0)
                return
            }
            
            // 代表有数据
            // 创建一个临时可变数组
            var tempArray:[HMStatusViewModel] = [HMStatusViewModel]()
            
            // 遍历数组
            for dic in r {
                let status = HMStatusModel(dict: dic)
                let statusViewModel = HMStatusViewModel(statusModel: status)
                // 添加模型
                tempArray.append(statusViewModel)
            }
            //赋值
            // 上拉
            if isPullUp {
                self.dataArray = self.dataArray + tempArray
            }else {
                // 下拉
                self.dataArray = tempArray + self.dataArray
            }
            finish(isSuccess: true, count: tempArray.count)
        }
//        
//        HMNetworkTools.sharedTools.homeLoadData(sinceId, maxId: maxId, success: { (response) -> () in
//            //print("请求成功:\(response)")
//            // 判断response 是否为nil  而且是否可以转成一个数组
//            guard let res = response?["statuses"] as? [[String: AnyObject]] else{
//                finish(isSuccess: false)
//                return
//            }
//            
//            
//            // 保存微博数据
//            HMStatusDAL.saveCache(res)
//            
//            // 创建一个临时可变数组
//            var tempArray:[HMStatusViewModel] = [HMStatusViewModel]()
//            
//            // 遍历数组
//            for dic in res {
//                let status = HMStatusModel(dict: dic)
//                let statusViewModel = HMStatusViewModel(statusModel: status)
//                // 添加模型
//                tempArray.append(statusViewModel)
//            }
//            //赋值
//            // 上拉
//            if isPullUp {
//                self.dataArray = self.dataArray + tempArray
//            }else {
//                // 下拉
//                self.dataArray = tempArray + self.dataArray
//            }
//            finish(isSuccess: true)
//            }) { (error) -> () in
//                print("请求失败:\(error)")
//                finish(isSuccess: false)
//        }
        
    }
}